
#include "../header.h"

//! 孤儿进程  父进程先执行完 结束。子进程还在执行。
//1 模拟方法：子进程代码量多于父进程。
//2 避免孤儿进程。 sleep(1);
//3 当前终端创建的子进程 都可以被当前终端控制。 ctrl +c 可以结束。
//4 当前终端 - a.out - a.out的子进程。
//5  孤儿进程 不受当前终端控制。  ctrl + c 不可以结束。
int main(int argc, char const *argv[])
{
    pid_t pid = fork();
    if(pid < 0)
    {
        perror("fork error\n");
        return -1;
    }
    //父进程执行区间
    if(pid > 0 )
    {
        int num = 5;
        while(num--)
        {
            printf("this is parents process:%d ppid:%d\n",getpid(),getppid());
            sleep(1);
        }
        //避免孤儿进程
    }
    //子进程代码区间
    if(pid == 0)
    {
        int num =20;
        while(num--)
        {   
            printf("this is child process:%d %d\n",getpid(),getppid());
            sleep(1);
        }
    }
    
    return 0;
}
